//
//  WBStatusListViewModel.swift
//  weibo
//
//  Created by 长城 on 16/12/13.
//  Copyright © 2016年 dhsr. All rights reserved.
//

import Foundation

/// 微博数据列表数据模型

/*
 -如果需要使用KVC或者字典转模型框架设置对象值，类就需要继承自NSObject
 -如果类只是包装一些代码逻辑（写了一些函数），可以不用任何父类，好处：更加轻量级
 
 使命：负责微博的数据处理
 */
class WBStatusListViewModel{
    lazy var statusList = [WBStatus]()
    
    func loadStatus(pullup:Bool, completion:@escaping (_ isSuccess:Bool)->()){
        //下拉刷新
        let since_id = pullup ? 0:(statusList.first?.id ?? 0)
        //上拉刷新
        let max_id = !pullup ? 0: (statusList.last?.id ?? 0)
        
        WBNetworkManager.shared.statusList (since_id: since_id,max_id: max_id){ (
            list, isSuccess) in
            //1 字典转模型
            guard let array = NSArray.yy_modelArray(with: WBStatus.self, json: list ?? []) as? [WBStatus] else{
                completion(isSuccess)
                return
            }
            print("刷新到\(array.count)条数据")
            //2 拼接数据
            if pullup {
                //下拉刷新，应该将数据拼接在数组前面
                self.statusList = array + self.statusList

            }else{
                //上拉刷新，将数据拼接在数组结尾
                self.statusList += array
            }
            //3 完成回调
            completion(isSuccess)
        }
    }
}
